home *** CD-ROM | disk | FTP | other *** search
/ Aminet 50 / Aminet 50 (2002)(GTI - Schatztruhe)[!][Aug 2002].iso / Aminet / util / wb / AmiShutDown.lha / AmiShutDown / AmiShutDown next >
Text File  |  2002-04-12  |  7KB  |  476 lines

  1. G4C ; <- Das muß immer in der ersten Zeile stehen!!!
  2.  
  3.  
  4. ;--------------------------------------
  5. ; $VER: AmiShutDown V1.22 (12.04.2002)
  6. ;--------------------------------------
  7.  
  8.  
  9. WINBIG -1 -1 300 150 ""
  10. WinFont xhelvetica.font 11 000
  11. WinType 10000000
  12. Screen Workbench
  13.  
  14.  
  15. xOnLoad
  16.     set margins 5/8/2
  17.  
  18.     palette get "*" tmpimg
  19.     palette save tmpimg t:palette
  20.  
  21.     freeimage tmpimg
  22.  
  23.     prog = AmiShutDown
  24.     ver  = 1
  25.     rev  = 22
  26.     date = 12.04.2002
  27.     name = Nightshade
  28.     mail = thenightshade@freenet.de
  29.  
  30.     reset = $$this.path\ColdReboot
  31.  
  32.     help = off
  33.  
  34.     ASK = NO
  35.     QUITKEY = q
  36.  
  37.     ttget :$prog
  38.  
  39.     if $ASK = YES
  40.         update #this 2 0
  41.     else
  42.         update #this 2 1
  43.     endif
  44.  
  45.     update #this 1 2
  46.  
  47.     sd_mode = 2
  48.  
  49.     setwintitle #this "$prog V$ver\.$rev ($date)"
  50.  
  51.     gosub #this win_2_front
  52.  
  53.     guiload blankwin
  54.     guiload as_abort
  55.  
  56.     guiopen blankwin
  57.  
  58.     GuiOpen #This
  59.  
  60.  
  61. xonclose
  62.     if $exec != 1
  63.         guiclose blankwin
  64.         guiquit #this
  65.     endif
  66.  
  67.  
  68. xOnQuit
  69.     palette load t:palette tmpimg
  70.     palette set tmpimg '*'
  71.  
  72.     freeimage tmpimg
  73.  
  74.     freeimage pic1
  75.     freeimage pic2
  76.  
  77.     delete t:palette
  78.  
  79.     guiquit as_abort
  80.     guiquit blankwin
  81.  
  82.     GuiQuit #This
  83.  
  84.  
  85. xonreload
  86.     gosub #this win_2_front
  87.  
  88.  
  89. xroutine win_2_front
  90.     guiscreen #Workbench front
  91.     guiwindow #this front
  92.     guiwindow #this on
  93.  
  94.  
  95. xicon 12 24 :AmiShutdown
  96.     if $help = off
  97.         ifexists file env:.lastoption
  98.             a = "$.lastoption"
  99.         else
  100.             flash
  101.             a = "Keine Informationen verfügbar!"
  102.         endif
  103.     else
  104.         a = "Zeigt die zuletzt ausgeführte Option an"
  105.     endif
  106.     guiwindow #this wait
  107.         ezreq $a "Okay" ""
  108.     guiwindow #this resume
  109.     gadkey #32
  110.  
  111.  
  112. BOX 0 0 0 0 out button
  113.  
  114.  
  115. XTEXTBOX 60 24 225 84 "" ""
  116.     attr tbox 2/1/0/ridge/in
  117.     attr title "2/1/shadow/left/top/Bitte, den Rechner:"
  118.  
  119.  
  120. xCycler 70 36 200 17 "" "sd_mode"
  121.     CSTR "In Bereitschaft versetzten  " 0
  122.     CSTR "Herunterfahren              " 1
  123.     CSTR "Neustarten                  " 2
  124.     CSTR "Neustarten im AmigaDOS Modus" 3
  125.         gosub #this onhelp
  126.             gadtitle right
  127.                 gadid 1
  128.  
  129.  
  130. xCheckBox 70 84 20 15 "_Sofortige Ausführung" ASK 'NO' 'YES' off
  131.     if $help = on
  132.         guiwindow #this wait
  133.             ezreq "Option wird sofort ausgeführt, wenn aktiviert" "Toll" ""
  134.         guiwindow #this resume
  135.     endif
  136.         gadtitle right
  137.             gadid 2
  138.  
  139.  
  140. xroutine onhelp
  141.     if $help = on
  142.         docase $sd_mode
  143.           case = 0
  144.                     a = "Das schwarze Fenster bleibt eingeblendet,\n so lange bis die linke Maustaste gedrückt wird"
  145.                     break
  146.           case = 1
  147.                     a = "Fährt den Rechner herunter"
  148.                     break
  149.           case = 2
  150.                     a = "Startet den Rechner neu"
  151.                     break
  152.           case = 3
  153.                     a = "Startet den Rechner\nim AmigaDOS Modus neu"
  154.                     break
  155.         endcase
  156.         guiwindow #this wait
  157.             ezreq $a "Achso" ""
  158.         guiwindow #this resume
  159.     else
  160.         if $sd_mode = 0
  161.             setgad #this 2 off
  162.         else
  163.             setgad #this 2 on
  164.         endif
  165.     endif
  166.  
  167.  
  168. square 59 119 76 24 1 nofill
  169.  
  170.  
  171. XBUTTON 60 120 75 23 "Okay"
  172.     if $help = off
  173.         exec = 1
  174.         guiclose #this
  175.         gosub blankwin execute
  176.     else
  177.         guiwindow #this wait
  178.             ezreq "Führt die gewählte Option aus" "Gut" ""
  179.         guiwindow #this resume
  180.     endif
  181.     gadkey #13
  182.  
  183.  
  184. XBUTTON 140 120 75 23 "Abbrechen"
  185.     if $help = off
  186.         ifexists file ~env:.canceled
  187.             guiclose #this
  188.             gosub #this about
  189.             .canceled = ""
  190.         endif
  191.         guiquit #this
  192.     else
  193.         guiwindow #this wait
  194.             ezreq "Schiesst das Fenster..." "Ah ha!" ""
  195.         guiwindow #this resume
  196.     endif
  197.     gadkey #27
  198.  
  199.  
  200. XBUTTON 220 120 75 23 "_Hilfe"
  201.     guiwindow #this wait
  202.     if $help = off
  203.         help = on
  204.         ezreq "Die Hilfsfunktion wurde aktiviert!\n\nKlicke nun auf die Buttons um\ndie Erläuterungen zu erhalten.\n\nÜbrigens:\nDrück mal die Rechte Maustaste!" "Alles klar!" ""
  205.     else
  206.         help = off
  207.         ezreq "Die Hilfsfunktion wurde deaktiviert!" "Zeige Tasten|Danke!" helpme
  208.         if $helpme = 1
  209.             ezreq "\nTasten in der Übersicht:\n\n[LEERTASTE] = Letzte Funtion \n[TAB] / [TAB+SHIFT] = Wechselt Modi\n[RETURN] / [ENTER] = Führt die gewählte Option aus\n[ESCAPE] = Schliesst Fenster\n" "Super" ""
  210.         endif
  211.     endif
  212.     guiwindow #this resume
  213.  
  214.  
  215. xonrmb
  216.     gosub #this about
  217.  
  218.  
  219. xroutine about
  220.     guiwindow #this wait
  221.         ezreq "$prog V$ver\.$rev ($date)\nEmailware ©2001/2002 by $name\n($mail)" "Nett" ""
  222.     guiwindow #this resume
  223.  
  224.  
  225. xhotkey "ctrl q" on
  226. xhotkey "ctrl c" on
  227. xonkey #5
  228. xonkey #7
  229. xonkey #8
  230. xonkey #18
  231.  
  232.  
  233. xonkey #9                  ; TAB
  234.     if $sd_mode < 3
  235.         ++sd_mode
  236.     else
  237.         sd_mode = 0
  238.     endif
  239.     update #this 1 $sd_mode
  240.     gosub #this onhelp
  241.  
  242.  
  243. xonkey #R
  244.     if $$RAWKEY.CODE = 66   ; SHIFT + TAB
  245.         if $sd_mode > 0
  246.             --sd_mode
  247.         else
  248.             sd_mode = 3
  249.         endif
  250.         update #this 1 $sd_mode
  251.         gosub #this onhelp
  252.     else
  253.         stop
  254.     endif
  255.  
  256.  
  257.  
  258. ;-----------------
  259.  newfile blankwin
  260. ;-----------------
  261.  
  262. WinBig -1 -1 0 0 ""
  263. WinType 00001000
  264. WinBackground Solid 1 0
  265. VarPath AmiShutDown
  266. Screen Workbench
  267.  
  268.  
  269. xhotkey "ctrl q" on
  270. xhotkey "ctrl c" on
  271. xonkey #5
  272. xonkey #7
  273. xonkey #8
  274. xonkey #18
  275.  
  276.  
  277. xonkey #V
  278.     if $$vankey.letter == $QUITKEY
  279.         if $sd_mode = 1
  280.             guiclose this
  281.             guiquit AmiShutDown
  282.         endif
  283.     else
  284.         stop
  285.     endif
  286.  
  287. xonclick
  288.     if $close != no
  289.         guiquit $prog
  290.     else
  291.         gosub #this activate_abortwin
  292.     endif
  293.  
  294.  
  295. xondoubleclick
  296.     gosub #this activate_abortwin
  297.  
  298.  
  299. xroutine activate_abortwin
  300.     ifexists window as_abort
  301.         guiwindow as_abort on
  302.         setpointer as_abort default
  303.     elseifexists window $prog
  304.         guiwindow $prog on
  305.         setpointer as_abort default
  306.     endif
  307.  
  308.  
  309. xonclose
  310.     setpointer #this default
  311.  
  312. xonopen
  313.     close = no
  314.     setpointer #this hide
  315.     
  316.  
  317. xroutine execute
  318.     if $sd_mode = 0
  319.         close = yes
  320.         stop
  321.     else
  322.         if $ASK = YES
  323.             guiopen as_abort
  324.         else
  325.             gosub #this option
  326.         endif
  327.     endif
  328.  
  329.  
  330. xroutine option
  331.     loadimage $$this.path\LOGOW.SYS pic1 noremap
  332.  
  333.     palette set pic1 "*"
  334.  
  335.     changeimage blankwin 1 -1 -1 pic1
  336.  
  337.     if $sd_mode != 0
  338.         .lastoption = "Zuletzt "
  339.  
  340.         if $sd_mode = 1
  341.             append env:.lastoption "heruntergefahren\n"
  342.         endif
  343.  
  344.         if $sd_mode = 2
  345.         or $sd_mode = 3
  346.             append env:.lastoption "neugestartet\n"
  347.         endif
  348.  
  349.         append env:.lastoption "am $$SYS.DATE um $$SYS.TIME Uhr"
  350.  
  351.         if $sd_mode = 3
  352.             append env:.lastoption "\nim AmigaDOS Modus"
  353.         endif
  354.  
  355.         copy env:.lastoption envarc:
  356.     endif
  357.  
  358.     if $sd_mode = 1
  359.         delay 200
  360.         loadimage $$this.path\LOGOS.SYS pic2 noremap
  361.         palette set pic2 "*"
  362.         changeimage #this 1 -1 -1 pic2
  363.     endif
  364.  
  365.     if $sd_mode = 2
  366.         delay 150
  367.         cli $reset
  368.     endif
  369.  
  370.     if $sd_mode = 3
  371.         .DosBoot = ""
  372.         copy Env:.DosBoot SYS:
  373.         delay 80
  374.         cli $reset
  375.     endif
  376.  
  377.  
  378. image 0 0 ""
  379.     gadid 1
  380.  
  381.  
  382.  
  383. ;------------------
  384.   newfile as_abort
  385. ;------------------
  386.  
  387. WINBIG -1 -1 200 70 " "
  388. WinType 00000000
  389. WinBackground pattern 2 0
  390. Screen Workbench
  391. VarPath AmiShutDown
  392.  
  393.  
  394. xhotkey "ctrl q" on
  395. xhotkey "ctrl c" on
  396. xonkey #5
  397. xonkey #7
  398. xonkey #8
  399. xonkey #18
  400.  
  401.  
  402. xonkey #13
  403.     gosub #this stop
  404.  
  405.  
  406. xonkey #27
  407.     gosub #this stop
  408.  
  409.  
  410. xOnOpen
  411.     if $sd_mode = 1
  412.         setwintitle #this "Fahre Rechner runter..."
  413.     elseif $sd_mode = 2
  414.     or $sd_mode = 3
  415.         setwintitle #this "Neustart des Rechners..."
  416.     endif
  417.  
  418.     cnt = 10
  419.     p = 0
  420.  
  421.     txt = "...in $cnt Sekunden"
  422.  
  423.     update #this 2 $txt
  424.  
  425.     partredraw #this 0 0 0 0
  426.  
  427.     setgad #this 1 on
  428.     
  429.  
  430. xtimer repeat 0:0:01 off
  431.     if $cnt > 0
  432.         --cnt
  433.         txt = "...in $cnt Sekunden"
  434.         update #this 2 $txt
  435.         p = $($p + 10)
  436.         update #this 4 $p
  437.     else
  438.         setgad #this 1 off
  439.         setgad #this 3 off
  440.         guiclose #this
  441.         gosub blankwin option 
  442.     endif
  443.     partredraw #this 0 0 0 0
  444.     gadid 1
  445.  
  446.  
  447. XTEXTBOX -1 5 190 40 "" ""
  448.     attr tbox 2/1/0/button/in
  449.  
  450.  
  451. gauge -1 15 175 18 in button 3 0 0
  452.     gadid 4
  453.  
  454.  
  455. XTEXTBOX -1 15 175 18 "" ""
  456.     attr tbstyle 2/1/shadow/center
  457.     attr tbox 0/0/-1/none
  458.         gadid 2
  459.  
  460.  
  461. XBUTTON -1 50 86 17 "_Stopp"
  462.     gosub #this stop
  463.         gadfont xhelvetica.font 11 010
  464.             gadid 3
  465.  
  466.  
  467. xroutine stop
  468.     if $cnt > 0
  469.         update #this 2 "...Abgebrochen!"
  470.         partredraw #this 0 0 0 0
  471.         setgad #this 1 off
  472.         delay 40
  473.         guiclose #this
  474.         guiquit $prog
  475.     endif
  476.